#include "esp_system.h"
#include "esp_log.h"
#include "driver/uart.h"

#include "cstm_gpio.h"

void init_gpio_output(gpio_num_t gpio_num){
    gpio_config_t gpio_config_structure;
    gpio_config_structure.pin_bit_mask = (1ULL << gpio_num);/* 閫夋嫨gpio2 */
    gpio_config_structure.mode = GPIO_MODE_OUTPUT;              /* 杈撳嚭妯″紡 */
    gpio_config_structure.pull_up_en = GPIO_PULLUP_DISABLE;                       /* 涓嶄笂鎷� */
    gpio_config_structure.pull_down_en = GPIO_PULLDOWN_DISABLE;                     /* 涓嶄笅鎷� */
    gpio_config_structure.intr_type = GPIO_INTR_DISABLE;    /* 绂佹涓柇 */

    /* 鏍规嵁璁惧畾鍙傛暟鍒濆鍖栧苟浣胯兘 */
	gpio_config(&gpio_config_structure);
	vTaskDelay(10 / portTICK_PERIOD_MS);
    gpio_set_level(gpio_num, 0);
    gpio_config(&gpio_config_structure);
}

void set_gpio(gpio_num_t gpio_num, int value = 0) {
    gpio_set_level(gpio_num, value);
}